package com.wmx.designMode.proxy;

import java.lang.reflect.InvocationHandler;
import java.lang.reflect.Method;
import java.lang.reflect.Proxy;

public class ProxyFactoty {

    //目标对象
    private Object target;
    ProxyFactoty(Object target){
        this.target = target;
    }

    // 代理对象

    public Object getProxyInstance() {
       return Proxy.newProxyInstance(target.getClass().getClassLoader(), target.getClass().getInterfaces(), new InvocationHandler() {
           @Override
           public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {
               System.out.println("开始事务2");

               args[0] = "无鞥呢";
               //执行目标对象方法
               Object returnValue = method.invoke(target, args);

               System.out.println("提交事务2");
               return returnValue;
           }
       });
    }
}
